const path = require('node:path')

// basename 返回给定路径最后一部分 index.html
// window 兼容 正斜杠 '/foo/bar/baz/asfd/index.html'
// posix 处理不了 weindow 路径 \foo\bar\baz\asfd\index.html
console.log(path.posix.basename('\\foo\\bar\\baz\\asfd\\index.html'))
// mac 系统处理 window 路径
console.log(path.win32.basename('\\foo\\bar\\baz\\asfd\\index.html'))

// dirname 返回当 文件路径目录名
console.log(path.dirname('c:code/path/node/index.js')) //c:code/path/node
console.log(__dirname) //D:\web\node\qianfeng-nodejs-notes\code\07-node-内置模块

// extname 返回路径的 扩展名 .html
console.log(path.extname('/assets/image-20220209152247426.png'))  //.png
// // 如果没有 . 返回 空值
console.log(path.extname('index'))  // ''
// // 如果有多点 返回 最后一个
console.log(path.extname('index.html.jds'))  //.jds

// path.join()  拼接路径
console.log(path.join('/a', '/b', '/c'))   // \a\b\c
console.log(path.join('/a', '/b', '/c', '../'))   // \a\b\

// path.resolve() 解析路径，返回绝对路径
// 都是绝对路径返回最后一个
console.log(path.resolve('/c', '/a', '/b'))  // D:\b
// 如果只有一个相对路径，返回当前工作目录的绝对路径
console.log(path.resolve('./path.js'))  //D:\web\node\qianfeng-nodejs-notes\code\07-node-内置模块\path.js
// 
console.log(path.resolve(__dirname, './path.js'))  // D:\web\node\qianfeng-nodejs-notes\code\07-node-内置模块\path.js

// path.parse() 解析路径 返回一个对象  path.format() 逆向操作 对象解析成路径

console.log(path.parse(path.resolve(__dirname, './path.js')))/**
* {
 root: 'D:\\',  根目录
 dir: 'D:\\web\\node\\qianfeng-nodejs-notes\\code\\07-node-内置模块',  文件所在绝对目录
 base: 'path.js',  文件名 + 后缀名
 ext: '.js',   后缀名
 name: 'path'  文件名
}
*/
console.log(path.format({
    root: 'D:\\',
    dir: 'D:\\web\\node\\qianfeng-nodejs-notes\\code\\07-node-内置模块',
    base: 'path.js',
    ext: '.js',
    name: 'path'
}
))  // D:\web\node\qianfeng-nodejs-notes\code\07-node-内置模块\path.js

// window 返回 \
// posix  返回 /
console.log(path.sep)  // \
console.log(path.posix.sep)   // /